package org.bootlimn.renderer;

import java.io.IOException;
import java.util.List;

import org.bootlimn.common.Stats;
import org.bootlimn.common.Process;

/**
 * Renderable is a common interface for different boot chart renderers.
 */
public abstract class Renderer {
	//private static final Logger log = Logger.getLogger(Renderer.class.getName());
	
	/**
	 * Render the chart and output to an output stream.
	 * 
	 * @param headers       header properties to include in the title banner
	 * @param bootStats     boot statistics
	 * @param os            the output stream to write to
	 * @throws IOException  if an I/O error occurs
	 */
	public abstract void render(List<Process> processes, List<Stats> stats, List<Process> uniqueP , int[] level) throws IOException;
	/**
	 * Returns the file suffix to use for the rendered image.
	 * 
	 * @return  file suffix
	 */
	public abstract String getFileSuffix();
}